﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DADOS.usuario
{
    public class metAvd
    {
        DB_PROAD banco = new DB_PROAD();

        private void FecharConexao(object banco)
        {
            ((DB_PROAD)banco).Connection.Close();
        }

        private void InicializarConexao(object banco)
        {
            ((DB_PROAD)banco).Connection.Open();
        }

        public void Incluir(TB_AVD objAvd)
        {
            try
            {
                InicializarConexao(banco);
                banco.AddToTB_AVD(objAvd);
                banco.SaveChanges();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }
        }

        public void Alterar(TB_AVD objAvd)
        {
            try
            {
                InicializarConexao(banco);
                var objAvdAlt = banco.TB_AVD.Where(q => q.CO_AVD == objAvd.CO_AVD).FirstOrDefault();

                objAvdAlt.NR_Q_1_ALIMENTACAO = objAvd.NR_Q_1_ALIMENTACAO;
                objAvdAlt.NR_Q_1_BANHEIRO = objAvd.NR_Q_1_BANHEIRO;
                objAvdAlt.NR_Q_1_BANHO = objAvd.NR_Q_1_BANHO;
                objAvdAlt.NR_Q_1_CONT = objAvd.NR_Q_1_CONT;
                objAvdAlt.NR_Q_1_TRANS = objAvd.NR_Q_1_TRANS;
                objAvdAlt.NR_Q_1_VESTIR = objAvd.NR_Q_1_VESTIR;
                objAvdAlt.NR_Q_2_FERIDA = objAvd.NR_Q_2_FERIDA;
                objAvdAlt.NR_Q_3_ATIVIDADE = objAvd.NR_Q_3_ATIVIDADE;
                objAvdAlt.NR_Q_3_CISALHAMENTO = objAvd.NR_Q_3_CISALHAMENTO;
                objAvdAlt.NR_Q_3_MOBILIDADE = objAvd.NR_Q_3_MOBILIDADE;
                objAvdAlt.NR_Q_3_NUTRICAO = objAvd.NR_Q_3_NUTRICAO;
                objAvdAlt.NR_Q_3_PERC = objAvd.NR_Q_3_PERC;
                objAvdAlt.NR_Q_3_UMIDADE = objAvd.NR_Q_3_UMIDADE;

                gravarLogAvd(objAvd.CO_PROFISSIONAL, objAvd.CO_AVD);

                banco.SaveChanges();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }
        }

        public TB_AVD possuiAvd(int codPac)
        {
            try
            {
                InicializarConexao(banco);
                var objAvd = banco.TB_AVD.Where(q => q.CO_USUARIO == codPac).FirstOrDefault();

                return objAvd;
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }
        }

        public void gravarLogAvd(int codProf, int codAvd)
        {
            var objLog = new TB_AVD_LOG();
            objLog.CO_AVD = codAvd;
            objLog.CO_PROFISSIONAL = codProf;
            objLog.DT_ALTERACAO = DateTime.Now;

            try
            {
                
                banco.AddToTB_AVD_LOG(objLog);
                banco.SaveChanges();
            }
            catch (Exception)
            {

                throw;
            }
           
        }
    }
}
